58 #define SLAVE_ADDRESS 0x48
65 EUSCI_B_I2C_initMasterParam i2cConfig = {
66 EUSCI_B_I2C_CLOCKSOURCE_SMCLK,
68 EUSCI_B_I2C_SET_DATA_RATE_400KBPS,
70 EUSCI_B_I2C_NO_AUTO_STOP
76 CS_setupDCO(CS_INTERNAL_RESISTOR);
79 CS_initClockSignal(CS_SMCLK, CS_CLOCK_DIVIDER_4);
82 GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P1,
83 GPIO_PIN6 | GPIO_PIN7,
84 GPIO_PRIMARY_MODULE_FUNCTION);
87 EUSCI_B_I2C_initMaster(EUSCI_B0_BASE, &i2cConfig);
93 EUSCI_B_I2C_enable(EUSCI_B0_BASE);
96 EUSCI_B_I2C_clearInterrupt(EUSCI_B0_BASE, EUSCI_B_I2C_TRANSMIT_INTERRUPT0 |
97 EUSCI_B_I2C_NAK_INTERRUPT);
98 EUSCI_B_I2C_enableInterrupt(EUSCI_B0_BASE, EUSCI_B_I2C_TRANSMIT_INTERRUPT0 |
99 EUSCI_B_I2C_NAK_INTERRUPT);
107 while(EUSCI_B_I2C_masterIsStopSent(EUSCI_B0_BASE) == EUSCI_B_I2C_SENDING_STOP);
110 EUSCI_B_I2C_masterSendMultiByteStart(EUSCI_B0_BASE,
TXData++);
113 __bis_SR_register(LPM0_bits | GIE);
117 #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
118 #pragma vector=USCI_B0_VECTOR
120 #elif defined(__GNUC__)
121 __attribute__((interrupt(USCI_B0_VECTOR)))
124 switch(__even_in_range(UCB0IV, USCI_I2C_UCBIT9IFG)) {
125 case USCI_NONE:
break;
126 case USCI_I2C_UCALIFG:
break;
127 case USCI_I2C_UCNACKIFG:
128 EUSCI_B_I2C_masterSendStart(EUSCI_B0_BASE);
130 case USCI_I2C_UCSTTIFG:
break;
131 case USCI_I2C_UCSTPIFG:
break;
132 case USCI_I2C_UCRXIFG3:
break;
133 case USCI_I2C_UCTXIFG3:
break;
134 case USCI_I2C_UCRXIFG2:
break;
135 case USCI_I2C_UCTXIFG2:
break;
136 case USCI_I2C_UCRXIFG1:
break;
137 case USCI_I2C_UCTXIFG1:
break;
138 case USCI_I2C_UCRXIFG0:
break;
139 case USCI_I2C_UCTXIFG0:
141 EUSCI_B_I2C_masterSendMultiByteNext(EUSCI_B0_BASE,
TXData++);
144 EUSCI_B_I2C_masterSendMultiByteStop(EUSCI_B0_BASE);
150 case USCI_I2C_UCBCNTIFG:
break;
151 case USCI_I2C_UCCLTOIFG:
break;
152 case USCI_I2C_UCBIT9IFG:
break;
__bic_SR_register_on_exit(LPM3_bits|GIE)